package com.atdel.demo06;


import java.util.List;

/**
 * @BelongsProject: java_study
 * @BelongsPackage: com.atdel.demo06
 * @Author: Del
 * @CreateTime: 2025-03-04  12:57
 * @Description:
 * User类代表一个用户，该用户可以操作一组门（Door对象）的开关
 * 它通过维护一个Door对象列表来管理这些门，并提供方法来同时打开或关闭所有门
 * @Version: 1.0
 */
public class User {

    // doors变量存储了User对象管理的所有门的列表
    private List<Door> doors;

    // 默认构造函数，初始化User对象，但不包含任何门
    public User() {
    }

    /**
     * 构造函数，允许在创建User对象时指定其管理的门列表
     *
     * @param doors 一个包含多个Door对象的列表，代表该用户可以操作的所有门
     */
    public User(List<Door> doors) {
        this.doors = doors;
    }

    /**
     * 批量操作所有门的开关
     * 此方法遍历User对象管理的所有门，并根据isOpen参数的值决定是打开还是关闭这些门
     * 如果isOpen为true，则打开所有门；如果为false，则关闭所有门
     *
     * @param isOpen 布尔值，指示门应打开（true）还是应关闭（false）
     */
    public void operateDoors(boolean isOpen) {
        for (Door door : doors) {
            if (isOpen) door.open();
            else door.close();
        }
    }

    @Override
    public String toString() {
        return "User{" +
                "doors=" + doors +
                '}';
    }
}
